﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;
namespace childApp.common
{
    class DbCommon
    {

        public static string LoginFLAG = "ADMIN";
        public static string sqlcon = System.Configuration.ConfigurationManager.ConnectionStrings["childApp.Properties.Settings.ConnectionString"].ConnectionString;
        public static OleDbConnection My_con;  //定义一个OleDbConnection类型的公共变量My_con，用于判断数据库是否连接成功

        #region  建立数据库连接
        /// <summary>
        /// 建立数据库连接.
        /// </summary>
        /// <returns>返回OleDbConnection对象</returns>
        public static OleDbConnection GetConn()
        {
            My_con = new OleDbConnection(sqlcon);   //用OleDbConnection对象与指定的数据库相连接
            My_con.Open();  //打开数据库连接
            return My_con;  //返回OleDbConnection对象的信息
        }
        #endregion

        #region  关闭数据库连接
        /// <summary>
        /// 关闭于数据库的连接.
        /// </summary>
        public static void ConnClose()
        {
            if (My_con.State == ConnectionState.Open)   //判断是否打开与数据库的连接
            {
                My_con.Close();   //关闭数据库的连接
                My_con.Dispose();   //释放My_con变量的所有空间
            }
        }
        #endregion


        #region  读取指定表中的信息
        /// <summary>
        /// 读取指定表中的信息.
        /// </summary>
        /// <param name="SQLstr">SQL语句</param>
        /// <returns>返回bool型</returns>
        public static OleDbDataReader Getcom(string SQLstr)
        {
            GetConn();   //打开与数据库的连接
            OleDbCommand Mycom = My_con.CreateCommand(); //创建一个OleDbCommand 对象，用于执行SQL语句
            Mycom.CommandText = SQLstr;    //获取指定的SQL语句
            OleDbDataReader Myread = Mycom.ExecuteReader(); //执行SQL语名句，生成一个OleDbDataReader 对象
            return Myread;
        }
        #endregion


        #region 执行OleDbCommand 命令
        /// <summary>
        /// 执行OleDbCommand 
        /// </summary>
        /// <param name="M_str_sqlstr">SQL语句</param>
        public static bool Getsqlcom(string SQLstr)
        {
            GetConn();   //打开与数据库的连接
            OleDbCommand SQLcom = new OleDbCommand(SQLstr, My_con); //创建一个OleDbCommand 对象，用于执行SQL语句
            int flag = SQLcom.ExecuteNonQuery();   //执行SQL语句
            SQLcom.Dispose();   //释放所有空间
            ConnClose();    //调用ConnClose()方法，关闭与数据库的连接
            if (flag > 0)
            {
                return true;
            }
            return false;
        }
        #endregion

        #region  创建DataSet对象
        /// <summary>
        /// 创建一个DataSet对象
        /// </summary>
        /// <param name="M_str_sqlstr">SQL语句</param>
        /// <param name="M_str_table">表名</param>
        /// <returns>返回DataSet对象</returns>
        public static DataSet GetDataSet(string SQLstr, string tableName)
        {
            GetConn();   //打开与数据库的连接
            OleDbDataAdapter SQLda = new OleDbDataAdapter(SQLstr, My_con);  //创建一个OleDbDataAdapter 对象，并获取指定数据表的信息
            DataSet My_DataSet = new DataSet(); //创建DataSet对象
            SQLda.Fill(My_DataSet, tableName);  //通过OleDbDataAdapter 对象的Fill()方法，将数据表信息添加到DataSet对象中
            ConnClose();    //关闭数据库的连接
            return My_DataSet;  //返回DataSet对象的信息
        }
        #endregion
    }

}
